class Api::CartItemsController < Api::BaseController
  before_action :set_normal_store_id, :set_cart
  before_action :set_cart_item, except: [:create]
  def create
    @status ||= @cart.has_item(cart_item_params)
    if @status[:status]
      render json: {status: true, cart_item_id: @status[:cart_item_id]}
    else
      # @cart_item = CartItem.new(cart_item_params)
      # if @cart_item.save
      #   render json: {status: true, cart_item_id: @cart_item.id}
      # else
      #   render json: {status: false, message: @cart_item.errors.full_messages.first}
      # end
      render json: {status: @status[:status], message: @status[:message]}
    end
  end

  def update
    @cart_item.update(quantity: params[:quantity])
    render json: {status: true, price: @cart_item.sale_price, total_amount: @cart.amount}
  end

  def remove
    @cart_item.unshow!
    render json: {status: true, total_amount: @cart.amount}
  end

  private
  def cart_item_params
    params[:cart_id] = current_cart.id
    params.permit(:store_id, :quantity, :store_product_id, :cart_id)
  end

  def set_normal_store_id
    @normal_store_id ||= params[:store_id]
  end

  def set_cart_item
    @cart_item = CartItem.find(params[:id])
  end

  def set_cart
    @cart ||= current_cart
  end
end
